// 用来上树的代码
import vnode from "./vnode"
import createElement from "./createElement"
import patchVnode from "./patchVnode"
export default function (oldVnode,newVnode){
  /* 判断传入的第一个参数是dom节点 还是虚拟节点 */
  console.log(oldVnode,newVnode,'patch')
  if(!oldVnode.sel){
    // 真是dom 转换为 虚拟的  
    const newVn = createElement(newVnode)
    oldVnode.appendChild(newVn)
    oldVnode = vnode (oldVnode.tagName.toLowerCase(),{},newVnode,undefined,newVn)
    console.log(oldVnode,'真实dom转换为虚拟')
    
  }else{
    // 虚拟dom
    if( oldVnode.sel === newVnode.sel&&oldVnode.key === newVnode.key ){
      // return console.log('是同一个虚拟节点,什么都不用做')
      patchVnode(oldVnode,newVnode)
    }else{
     /*  不是同一个节点   简单暴力的添加到老节点之前 */
      console.log("不是同一个节点,暴力删除!")
      let newVnodeElm = createElement(newVnode)
      if(oldVnode.elm && newVnodeElm){
        oldVnode.elm.parentNode.insertBefore(newVnodeElm,oldVnode.elm)
      }
      oldVnode.elm.parentNode.removeChild(oldVnode.elm) 
    }
  }
}